using System;
using System.Collections;

namespace Sedna.Core.Controller.Configurations
{
	public interface IDataGridConfiguration : IClientScriptingConfiguration
	{
		#region Binding

		string LineSelectionUnbindPath
		{
			get;
		}

//		string VirtualItemCountBindPath
//		{
//			get;
//		}

	    string OperationNameBindPath
		{
			get;
		}

        string OperationNameUnbindPath
        {
            get;
        }

		string DataSourceBindPath
		{
			get;
		}

		//--

		string SortAscUnbindPath
		{
			get;
		}

		string SortExpressionUnbindPath
		{
			get;
		}

		string PageSizeUnbindPath
		{
			get;
		}

		string CurrentPageIndexUnbindPath
		{
			get;
		}

		string VirtualItemCountUnbindPath
		{
			get;
		}

		string CheckedLinesUnbindPath
		{
			get;
		}

		#endregion

		IList Columns
		{
			get;
		}

		IDataGridController Controller { get;}

        IGridPageSizeResolver PageSizeResolver { get; }

		/*reflected properties from DataGrid*/
		bool ShowHeader
		{
			get;
		}
		bool ShowFooter
		{
			get;
		}

		bool AllowSorting
		{
			get;
		}

		int PageSize
		{
			get;
		}

		bool AllowCustomPaging
		{
			get;
		}

		bool AllowPaging
		{
			get;
		}


		IDataGridPagerStyleConfiguration PagerStyle
		{
			get;
		}

		IDataGridColumnConfiguration DefaultSortableColumn
		{
			get;
		}

		bool UsePrefixKeyForPager
		{
			get;
		}

		string OperationParameterName
		{
			get;
		}

		string OperationContextName
		{
			get;
		}

       
	    
		IDataGridLineSelector LineSelector
		{
			get;
		}

//		string DataCollectionPath
//		{
//			get;
//		}



	}
}
